package online.abor;

import java.util.ArrayList;

/**
 * 题目：打印出所有的"水仙花数"，所谓"水仙花数"是指一个三位数，其各位数字立方和等于该数本身。例如：153是一个"水仙花数"，因为153=1的三次方＋5的三次方＋3的三次方。
 * 程序分析：利用for循环控制100-999个数，每个数分解出个位，十位，百位。
 */
public class Topic03_Narcissism {
    public static ArrayList<Integer> getAllNarcissism(int minValue,int maxValue){
        ArrayList<Integer> list=new ArrayList<>();
        for (int value=minValue;value<=maxValue;value++){
            if(isNarcissism(value))
                list.add(value);
        }
        return list;
    }
    public static boolean isNarcissism(int value){
        int sum=0;
        int number=value;
        while (number > 0){
            // number%10 取个位
            sum += Math.pow(number%10,3);
            // 删除个位，自动取整
            number /= 10;
        }
        return sum==value;
    }
}
